Echo.Process

Echo.Process Session

Contents

class SessionAction Source #

Fields

field SessionActionTag Tag Source #

field long Time Source #

field SessionId SessionId Source #

field string SystemName Source #

field string NodeName Source #

field int Timeout Source #

field string Key Source #

field string Value Source #

field string Type Source #

Constructors

constructor SessionAction (SessionActionTag tag, long time, SessionId sessionId, string systemName, string nodeName, int timeout, string key, string value, string type) Source #

Methods

method SessionAction Touch (SessionId sessionId, SystemName systemName, ProcessName nodeName) Source #

method SessionAction Stop (SessionId sessionId, SystemName systemName, ProcessName nodeName) Source #

method SessionAction Start (SessionId sessionId, int timeoutSeconds, SystemName systemName, ProcessName nodeName) Source #

method SessionAction ClearData (long time, SessionId sessionId, string key, SystemName systemName, ProcessName nodeName) Source #

method SessionAction SetData (long time, SessionId sessionId, string key, object data, SystemName systemName, ProcessName nodeName) Source #

enum VectorConflictStrategy Source #

Version vector conflict strategy

class ValueVector Source #

Simple version vector. There can be multiple values stored for the same event. The implementation will be replaced with Dotted Version Vectors once I have implemented a general system for it in the Core.

Fields

field long Time Source #

field Seq<object> Vector Source #

Methods

method ValueVector New (long time, object root) Source #

method ValueVector AddValue (long time, object value, VectorConflictStrategy strategy) Source #

class SessionVector Source #

Fields

Properties

property HashMap<string, Either<Unit, ValueVector>> Data Source #

Key/value store for the session only stores the data that the particular node is interested in. Unit if the node is interested in data but does not have a value yet.

property DateTime LastAccess Source #

UTC date of last access

property DateTime Expires Source #

The date-time of expiry

Methods

method SessionVector Create (int timeout, VectorConflictStrategy strategy) Source #

method void Touch () Source #

Invoke to keep the session alive

method void ClearKeyValue (long vector, string key) Source #

Remove a key from the session key/value store

method void SetKeyValue (long time, string key, object value, VectorConflictStrategy strategy) Source #

Add or update a key in the session key/value store

method Option<ValueVector> ProvideData (SessionId sid, string key) Source #

Checks local cache for a session data key. If does not exists uses get (redis) to retrieve the data. If data does not exist, an entry is still added to local cache as Unit (Left) to allow syncing with other published data update messages later.

Parameters

param key
param get
returns

method Option<ValueVector> GetExistingData (string key) Source #